#include "../../include/service/loginservice.h"

LoginService::LoginService()
{
}

LoginService::~LoginService()
{
}

bool LoginService::userCanLogin(const std::shared_ptr<User> &user)
{
    // 如果没有在redis中查到user用户
    if (!login_redis.userIsInRedis(user))
    {
        // 如果没有在mysql中查找user用户
        if (!login_mysql.userIsInMysql(user))
            return false;
        else // 用户是首次登陆
        {
            std::string token = UuidCreater::createUuid();
            std::cout << "用户是首次登陆,token为 : " << token << std::endl;
            login_redis.newExpireUser(user, token);
            m_token = token;
        }
    }
    else // 用户是二次登陆了
    {
        std::cout << "这是用户第二次登陆了" << std::endl;
        // 如果输入的密码和缓存中的密码不一致
        if (user->getUserPwd() != login_redis.getPwd())
            return false;
        else
        {
            login_redis.resetExpireTime(user);
            m_token = login_redis.getToken();
        }
    }
    return true;
}